#include <iostream>
#include "Thread.hpp"
#include <unistd.h>

class udata
{
public:
    std::string _s;
    int _data;
};

void uPrint(udata x)
{
    while(true)
    {
        std::cout << "我是一个封装后的线程，我得到了参数 : " << x._s << " 和 " << x._data <<std::endl;
        sleep(1);
    }
}


int main()
{
    udata da;
    da._s = "666";
    da._data = 111;
    
    Thread<udata> t(uPrint,da);
    t.Run();
    
    std::cout << "该线程的名字 : " << t.GetName() <<std::endl;
    std::cout << "该线程是否运行 : " << t.IsRunning() <<std::endl;
    std::cout << "该线程创建时间 : " << t.Start_Time() <<std::endl;


    t.Join();
    return 0;
}

// void uPrint(int x)
// {
//     while(true)
//     {
//         std::cout << "我是一个封装后的线程，我得到了参数 : " << x <<std::endl;
//         sleep(1);
//     }
// }

// int main()
// {
//     int x = 1;   
//     Thread<int> t(uPrint,x);
//     t.Run();
    
//     std::cout << "该线程的名字 : " << t.GetName() <<std::endl;
//     std::cout << "该线程是否运行 : " << t.IsRunning() <<std::endl;
//     std::cout << "该线程创建时间 : " << t.Start_Time() <<std::endl;


//     t.Join();
//     return 0;
// }